package trastienda.bean;

import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import trastienda.excepcion.DAOExcepcion;
import trastienda.excepcion.LoginExcepcion;
import trastienda.modelo.Usuario;
import trastienda.negocio.GestionUsuarios;



public class LoginBean {

	private String usuario;
	private String clave;

	public String validar(){
		System.out.println(usuario);
		System.out.println(clave);
		
		GestionUsuarios negocio = new GestionUsuarios();
		ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
		HttpSession session = (HttpSession)context.getSession(true);
		HttpServletRequest request = (HttpServletRequest)context.getRequest();
		try {
			Usuario vo = negocio.validarUsuario(usuario, clave);			
			session.setAttribute("USUARIO_ACTUAL", vo);
			return "correcto";
		} catch (DAOExcepcion e) {
			System.err.println(e.getMessage());
			request.setAttribute("msg_error", "Hubo un problema");
			return "error";
		} catch (LoginExcepcion e) {
			System.err.println(e.getMessage());
			request.setAttribute("msg_error", "Usuario y/o clave incorrectos");
			return "error";
		}		
	}
	
	public String salir(){
		System.out.println("LoginBean: salir()");
		ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
		HttpSession session = (HttpSession)context.getSession(true);
		session.invalidate();
		return "salir";
	}
	
	public String getUsuario() {
		return usuario;
	}

	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}

	public String getClave() {
		return clave;
	}

	public void setClave(String clave) {
		this.clave = clave;
	}

}
